export default {
  methods: {
    /**
     * 计算逾期天数
     * @param {Date} date - 必须是 Date 类型
     * @param {number} cycle - 周结(2)、半月结(4)、月结(5)
     */
    getOverdueDays(date, cycle) {
      if (!(date instanceof Date) || isNaN(date.getTime())) {
        throw new Error("请输入有效的 Date 类型日期");
      }

      const today = new Date();
      const diffTime = today - date;
      const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));

      let overdueThreshold = 0;

      switch (cycle) {
        case 2:
          overdueThreshold = 7;
          break;
        case 4:
        case 5:
          overdueThreshold = 15;
          break;
        default:
          throw new Error("无效的结算周期常量，请使用 2（周结）、4（半月结）或 5（月结）");
      }

      return diffDays > overdueThreshold ? diffDays - overdueThreshold : 0;
    }
  }
}
